#include<stdio.h>
#include<string.h>
char stack[400];
int k; 
bool isValid(char* s) {
    int i,len=strlen(s);
    k=0;
	char h,c;
    for (i=0;i<len;i++){
    	c=s[i];
    	if (k>0){
    		h=stack[k-1];
    		if (h=='{' && c=='}' || h=='[' && c==']' || h=='(' && c==')') {
		    	k--;	//pop
	    		continue;
		    }
	    
    	}
   		stack[k++]=s[i];	//push
    	
    }
    return !k;
    
}
int test(char*s){
	printf("%s=%d\n",s,isValid(s));
}
int main(){
	test("");
	test("[[]]");
	test("[{]}");
	test("[{}]");
	test("[[[[]]]]{}(([[]])())");
	
	return 0;
}